export function binarySearch(listChild) {
  const itemIndex = [];
  for (let i = 0; i < listChild.length; i++) {
    if (isInViewport(listChild[i]) === 0) {
      itemIndex.push(i);
    }
  }
  return itemIndex;
}

function isInViewport(target) {
  var divH = target.offsetHeight; // div高度
  var windowH = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; // 浏览器高度兼容写法
  var obj = getRect(target);
  if (obj.top >= windowH) { // 在视口之下
    return -1;
  }
  if (obj.top < windowH && obj.bottom >= windowH) { // 正在出现
    return -1;
  }
  if (obj.top > 0 && obj.top < windowH && obj.bottom > 0 && obj.bottom < windowH) { // 正在视口中
    return 0;
  }
  if (obj.top <= 0 && obj.bottom <= divH && obj.bottom > 0) { // 正在离开视口
    return -1;
  }
  if (obj.bottom <= 0) { // 已经离开视口
    return 1;
  }
  return -1;
}

export function getRect(element) {
  var rect = element.getBoundingClientRect(); // 距离视窗的距离
  var top = document.documentElement.clientTop ? document.documentElement.clientTop : 0; // html元素对象的上边框的宽度
  var left = document.documentElement.clientLeft ? document.documentElement.clientLeft : 0;
  return {
    top: rect.top - top,
    bottom: rect.bottom - top,
    left: rect.left - left,
    right: rect.right - left
  };
}
